///////////////////////////////////////////
////// From validation function From validation functionss
//////////////////////////////////////////

function validateChangeEmail(){

        if(!validateEmailElement('change_input_email')){
                inform('Email inválido', 'change_input_message');
                return false;
        }

        if(!valueEquals('change_input_email', 'change_input_email2')){
                inform('Los dos emails no concuerdan', 'change_input_message');
                return false;
        }

        if(!validatePasswordElement('password')){
                inform('La contraseña no puede tener menos de 5 caracteres', 'change_input_message');
                return false;
        }

	$('#change_input_user_hash').val(SHA256($('#password').val()));

        return true;
}

function validateChangePassword(){
        
        if(!validatePasswordElement('change_input_pass1')){
                inform('La contraseña actual no puede tener menos de 5 caracteres', 'change_input_pass_message');
                return false;
        }

        if(!validatePasswordElement('change_input_pass_new')){
                inform('La contraseña nueva no puede tener menos de 5 caracteres', 'change_input_pass_message');
                return false;
        }

        if(!valueEquals('change_input_pass_new', 'repassword2')){
                inform('Las dos nuevas contraseñas no coinciden');
                return false;
        }

	$('#change_input_pass_hash').val(SHA256($('#change_input_pass1').val()));
	$('#change_input_pass_new_hash').val(SHA256($('#change_input_pass_new').val()));

        return true;
}

function validateAdminNewUser(){

	//Validamos usuario y contraseña
	if(!validateEmailElement('new_email')){
		inform('Email inválido', 'admin_new_user_message');
		return false;
	}
	if(!validatePasswordElement('password1')){
		inform('La contraseña debe tener al menos 5 caracteres', 'admin_new_user_message');
		return false;
	}

        if(!valueEquals('password1', 'password2')){
                inform('Las dos contraseñas no concuerdan', 'admin_new_user_message');
                return false;
        }

	//Obtenemos el hash de la contraseña y lo almacenamos en la variable oculta login_password
	$('#new_user_hash').val(SHA256($('#password1').val()));

	return true;
}

function validateRegister(){

	//Validamos usuario y contraseña
	if(!validateEmailElement('register_email')){
		inform('Email inválido', 'register_message');
		return false;
	}
	if(!validatePasswordElement('register_password')){
		inform('La contraseña debe tener al menos 5 caracteres', 'register_message');
		return false;
	}

        if(!valueEquals('register_password', 'register_repassword')){
                inform('Las dos contraseñas no concuerdan', 'register_message');
                return false;
        }

	//Obtenemos el hash de la contraseña y lo almacenamos en la variable oculta login_password
	$('#register_hashed_password').val(SHA256($('#register_password').val()));

	return true;
}

function validateLogin(){

	//Validamos usuario y contraseña
	if(!validateEmailElement('login_email')){
		inform('Email inválido', 'login_message');
		return false;
	}
	if(!validatePasswordElement('login_password')){
		inform('La contraseña debe tener al menos 5 caracteres', 'login_message');
		return false;
	}

	//Obtenemos el hash de la contraseña y lo almacenamos en la variable oculta login_password
	$('#login_hashed_password').val(SHA256($('#login_password').val()));

	return true;
}

////////////////////////////////////////
////// Auxiliary functions
///////////////////////////////////////

function validateEmailElement(id) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var address = $('#' + id).val();

	return reg.test(address);
}

function validatePasswordElement(id) {
	
	var password = $('#' + id).val();

	return password.length>=5;
}

function valueEquals(id1, id2){
        
        var v1 = $('#' + id1).val();
        var v2 = $('#' + id2).val();

        return v1==v2;
}

function inform(message, id){

	$('#' + id).text(message);
}
